Skip to content

Rollup of 4 pull requests#154300

Merged
rust-bors[bot] merged 10 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-MkFxTPv
Mar 24, 2026
Merged

Rollup of 4 pull requests#154300
rust-bors[bot] merged 10 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-MkFxTPv

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

bjorn3 and others added 10 commits March 20, 2026 11:48
This allows compiling libcore with codegen backends that don't actually
implement VaList like cg_clif.
The current code for indexing into bucket arrays is quite tricky and unsafe,
partly because it has to keep manually assuring the compiler that a bucket
index is always less than 21.

By encapsulating that knowledge in a 21-value enum, we can make the code
clearer and safer, without giving up performance.

Having a dedicated `BucketIndex` type could also help with further cleanups of
`VecCache` indexing.
Use a safe `BucketIndex` abstraction in `VecCache`

The current code for indexing into bucket arrays is quite tricky and unsafe, partly because it has to keep manually assuring the compiler that a bucket index is always less than 21.

By encapsulating that knowledge in a 21-value enum, we can make the code clearer and safer, without giving up performance.

Having a dedicated `BucketIndex` type could also help with further cleanups of `VecCache` indexing.
… r=nnethercote

Defer codegen for the VaList Drop impl to actual uses

This allows compiling libcore with codegen backends that don't actually implement VaList like cg_clif.
fix/extend some mir-opt comments

Looks like CopyProp was refactored without updating that comment.

And for GVN, I think this is what you had in mind @cjgillot but would be great if you could have a look.
…t, r=JonathanBrouwer

document some functions on AttributeExt

r? @jyn514
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Mar 24, 2026
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Mar 24, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 24, 2026

📌 Commit 6f67067 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 24, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 24, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Mar 24, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 13m 44s
Pushing 0312931 to main...

@rust-bors rust-bors bot merged commit 0312931 into rust-lang:main Mar 24, 2026
12 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 24, 2026
@github-actions
Copy link
Copy Markdown
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing cde9cf0 (parent) -> 0312931 (this PR)

Test differences

Show 40 test diffs

Stage 0

  • vec_cache::tests::bucket_index_capacity: [missing] -> pass (J1)
  • vec_cache::tests::bucket_index_iter_all_len: [missing] -> pass (J1)
  • vec_cache::tests::bucket_index_n_buckets: [missing] -> pass (J1)
  • vec_cache::tests::bucket_index_round_trip: [missing] -> pass (J1)
  • vec_cache::tests::vec_cache_empty: pass -> [missing] (J1)
  • vec_cache::tests::vec_cache_empty_exhaustive: [missing] -> pass (J1)

Stage 1

  • vec_cache::tests::bucket_index_capacity: [missing] -> pass (J0)
  • vec_cache::tests::bucket_index_iter_all_len: [missing] -> pass (J0)
  • vec_cache::tests::bucket_index_n_buckets: [missing] -> pass (J0)
  • vec_cache::tests::bucket_index_round_trip: [missing] -> pass (J0)
  • vec_cache::tests::vec_cache_empty: pass -> [missing] (J0)
  • vec_cache::tests::vec_cache_empty_exhaustive: [missing] -> pass (J0)

Additionally, 28 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 0312931d8c0ba1a28268a12c06202b68cbc65f76 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. optional-x86_64-gnu-parallel-frontend: 2h 8m -> 2h 41m (+26.3%)
  2. dist-apple-various: 1h 40m -> 2h 2m (+22.0%)
  3. x86_64-gnu-debug: 1h 48m -> 2h 11m (+21.2%)
  4. x86_64-rust-for-linux: 43m 54s -> 52m 10s (+18.8%)
  5. x86_64-gnu-llvm-22-2: 1h 24m -> 1h 40m (+18.7%)
  6. pr-check-1: 28m 9s -> 33m 9s (+17.8%)
  7. dist-aarch64-llvm-mingw: 1h 40m -> 1h 57m (+17.7%)
  8. dist-x86_64-apple: 1h 50m -> 2h 8m (+17.0%)
  9. x86_64-mingw-2: 2h 36m -> 2h 57m (+13.3%)
  10. i686-gnu-2: 1h 31m -> 1h 43m (+13.3%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0312931): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.1%, secondary 1.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
3.1% [2.7%, 3.5%] 4
Regressions ❌
(secondary)
2.9% [2.2%, 3.6%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.4% [-3.1%, -1.7%] 2
All ❌✅ (primary) 3.1% [2.7%, 3.5%] 4

Cycles

Results (secondary -0.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.4% [2.4%, 2.4%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.8% [-3.8%, -3.8%] 1
All ❌✅ (primary) - - 0

Binary size

Results (primary -0.1%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.1% [-0.1%, -0.0%] 54
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.0%] 22
All ❌✅ (primary) -0.1% [-0.1%, -0.0%] 54

Bootstrap: 486.46s -> 484.31s (-0.44%)
Artifact size: 394.96 MiB -> 394.79 MiB (-0.04%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants